package avicit.bdp.dms.tdm.dao;

import avicit.bdp.common.base.BaseDAO;
import avicit.bdp.dms.tdm.dto.AssetLogDTO;
import com.github.pagehelper.Page;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * @金航数码科技有限责任公司
 * @作者：${tableInfo.classCreator}
 * @邮箱：${tableInfo.classMailbox}
 * @创建时间： 2023-11-14 16:03
 * @类说明：bdp_asset_logDao
 * @修改记录：
 */
@Repository
public interface AssetLogDao extends BaseDAO<AssetLogDTO> {

    /**
     * 分页查询资产使用日志
     *
     * @return 分页列表
     */
    Page<AssetLogDTO> getAssetLogPageList(@Param("assetId") String assetId,
                                          @Param("callUserId") String callUserId);

    List<Map<String, Object>> getAssetTypeCount(@Param("beginTime") String beginTime,
                                                @Param("endTime") String endTime);

    long countAssetNum(@Param("beginTime") String beginTime,
                       @Param("endTime") String endTime);

    long countAssetApplyNum(@Param("beginTime") String beginTime,
                            @Param("endTime") String endTime);

    long countAssetLogNum(@Param("beginTime") String beginTime,
                          @Param("endTime") String endTime);

    List<Map<String, Object>> getApplyStatusCount(@Param("beginTime") String beginTime,
                                                  @Param("endTime") String endTime);

    List<Map<String, Object>> getTop10LogCount(@Param("beginTime") String beginTime,
                                               @Param("endTime") String endTime);

    long countCategory();

    long countAsset();

    List<String> selectDatasourceIds();

    long countDatasource();

    List<Map<String,String>> getHomeCategorys();

    Long countAssetCallNum();
}